一 . 概述

使用pandas对Dataframe上进行One-Hot Encoding的例子。

二 . Pandas Dataframe 中的热编码。

首先我们创建一个DataFrame数据集。

1
2
3
import pandas as pd

data = pd.DataFrame({'color': ['blue', 'red', 'yellow']})

pandas上有一个get_dummies方法可以对DataFrame数据,实现我们想要的独热编码功能。

1
pd.get_dummies(data['color'], prefix='color')  ## 其中 prefix 为新的特征名称前缀

有时候我们可能会出现在预测数据集合里面存在 在训练集合里面没有的特质数据。比如 green,这样会让独热编码出错。这种情况可以使用CategoricalDType方法来处理

1
df['color'] = df['color'].astype(pd.CategoricalDtype(['blue', 'green']))

这样其它异常值会被忽略

使用pd.concat可以将新的数据列和原始数据链接起来

1
df = pd.concat([df, pd.get_dummies(df['color'], prefix='color')], axis=1)

也可以使用 dummy_na=True 参数保留 NaN 值为一个单独的独热编码

1
df = pd.concat([df, pd.get_dummies(df['color'], prefix='color', dummy_na=True)], axis=1)

最后结构如下图